#ifndef _STR_H_
#define _STR_H_
#include "python3/PythonGrammar30TreeConstants.h"
#include "ast/exprType.h"
#include "ast/strTypeType.h"
class IVisitor;
class Str;
typedef QSharedPointer<Str> StrPtr;

class Str: public exprType
{
public:
    explicit Str(const QString& s, int type, bool unicode, bool raw, bool binary, int nodeId=JJTSTRING);
    virtual ~Str();
    
    
    QString s();
    void setS(const QString& s);
    
    int type_();
    void setType_(int type);
    
    bool unicode();
    void setUnicode(bool unicode);
    
    bool raw();
    void setRaw(bool raw);
    
    bool binary();
    void setBinary(bool binary);
    
    
    virtual QString type() const;
    virtual QString toString() const;
    virtual void accept(IVisitor* visitor, const SimpleNodePtr& node);
    virtual void traverse(IVisitor* visitor);
private:
    QString _s;
    int _type;
    bool _unicode;
    bool _raw;
    bool _binary;
};




#endif